import clientUtils from "./clientUtils";
import wx from "weixin-js-sdk";

/**
 * 对应等方法
 * 调用分享方法 shareAction   params:{title, introduction, imgUrl, shareUrl}
 * 调用支付方法 名称 H5Zhifu    参数 url 【IOS内部】
 */
export default {
	/**
	 * 调用APP暴露的JS方法
	 * @param params 参数对象
	 * @param funName 方法名称
	 */
	sendParamsByFn(params: any, funName: any, mod?: string) {
		try {
			const jsonParams: any = params ? JSON.stringify(params) : undefined;

			// console.log('jsonParams', jsonParams)

			if (clientUtils.isAPP()) {
				if (funName === "login") {
					// 登录因为三端没有约定该方法，所以做兼容处理
					return (window.location.href =
						import.meta.env.VITE_APP_PROTOCOL + "/loginNew");
				}

				const appType = clientUtils.checkClient();
				// android
				if (appType === "android") {
					if (jsonParams) {
						window.android[funName](jsonParams);
					} else {
						window.android[funName]();
					}
					return;
				}

				// ios
				if (appType === "ios") {
					window.webkit.messageHandlers[funName].postMessage(
						jsonParams
					);
				}
			} else if (clientUtils.isMiniProgram()) {
				if (mod === "redirectTo") {
					wx.miniProgram.redirectTo({
						url: params.url,
					});
				} else {
					wx.miniProgram.navigateTo({
						url: params.url,
					});
				}
			} else {
				// h5
				window.parent.postMessage({ [funName]: jsonParams }, "*");
			}
		} catch (e) {
			console.error(e);
		}
	},
};
